<?php
/**
 * Created by PhpStorm.
 * User: zfy
 * Date: 2018/10/10
 * Time: 19:40
 */
namespace App\Http\Controllers;

use App\Models\Fine;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Yansongda\Pay\Pay;
use Illuminate\Http\Request;

class ImgController extends Controller
{
    public function cut(Request $request)
    {

        $file =$request->file("imge");
        $ext = $file->getClientOriginalExtension();     // 扩展名
        $realPath = $file->getRealPath();   //临时文件的绝对路径
        // 上传文件
        $filename = date('Y-m-d') . '-' .uniqid();
        $real_filename=$filename.".".$ext;
        Storage::disk('public')->put($real_filename, file_get_contents($realPath));

//        echo phpinfo();
        $widthnum=3;
        $heightnum=3;
        $link=realpath(base_path('public'))."/file/".$filename.".".$ext;

        if($ext=="png")
        {
            $img = imagecreatefrompng($link);

        }
        else
        {
            $img = imagecreatefromjpeg($link);
        }

        list($width, $height, $type, $attr) = getimagesize($link);
        $maxW=ceil($width/$widthnum); //准备将图片裁减成的小图的宽
        $maxH=ceil($height/$widthnum); //准备将图片裁减成的小图的高
        $iOut = imagecreatetruecolor ($maxW,$maxH);

        $result=array();
//bool imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h )
//将 src_im 图像中坐标从 src_x，src_y 开始，宽度为 src_w，高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。

        $count=1;
        for ($i=0;$i < $heightnum;$i++) {
            for ($j=0;$j < $widthnum;$j++) {
                imagecopy($iOut,$img,0,0,($j*$maxW),($i*$maxH),$maxW,$maxH);//复制图片的一部分
                $s=realpath(base_path('public'))."/file/".$filename.$i."_".$j.".".$ext;
                $x="http://www.inf.ink./file/".$filename."_".$count.".".$ext;
                $count++;
                array_push($result,$x);
                imagejpeg($iOut,$s); //输出成0_0.jpg,0_1.jpg这样的格式
            }
        }

        return $this->success($result);
    }
}